This invention relates generally to data communications over interconnect infrastructure, and particularly to routing packets in packet-based input/output data communications.
Using a host of interconnect technologies, different forms of data may be typically routed between a variety of data computers or servers in application processing and enterprise computing environments. As an example, in a packet-based input/output communication a data packet, such as a unicast and/or a multicast packet may be received at an interconnect device including a switch or a router. While the unicast packet is forwarded to a predefined destination port, the multicast packet is transmitted to more than one destination ports. Although each transfer of a multicast packet may be treated as a unicast transfer, however, satisfying all the multicast requirements may be extremely inefficient and time consuming because of the number of iterations required to transfer the multicast packet to multiple destination ports on a one-to-one transfer basis. Also at a switch (or any other interconnect device), the multicast packet may remain in an input buffer for a long time, creating a backlog of pending packets thereafter.
Regardless of the packet type, another significant bottleneck for routing a packet through an interconnect device is mapping of addresses. While routing a packet, typically some form of address mapping occurs in a central unit, which is accessed by all the ports on the switch. Since a single unit does the entire mapping for each port, it is a serial process, creating a significant bottleneck and slow down in the switch, even though the ports may have the required bandwidth to transfer the packet. For mapping, an address translation process commonly involves two stages. Upon receipt of a packet, while one stage provides mapping to a specific destination port, the other stage involves mapping to provide one or more destination paths associated with one or more destination ports on which the packet is routed. Because the second stage needs the destination port, it must sequentially follow the first stage, resulting in increased latency.
Thus, there is a continuing need for better ways to route packets in packet-based input/output data communications, especially in a switch.